package com.wjm.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * Data:2022年07月07日
 * Author:wjm
 * Content: String 的排序规则
 *
 *
 *  字符串进行比较也是依据自然排序的，所谓的自然排序就是将字符串转化为对应的char[]数组
 *  比较时是使用每个char对应的int值进行大小的比较。 具体的对应值查看ASCII表。
 *
 *  要求就是String一定要实现Comparable接口，然后出现compareTo方法
 *
 *  如果是汉字的话String会先将汉字对应的UNICODE值算出来，【16进制的整数】
 *
 */
public class SortDemo {
    public static void main(String[] args) {
        //创建集合对象
        List<String> list = new ArrayList<>();

        //Collections工具类添加元素 addAll()
        Collections.addAll(list,"aab","aa","abc","bac","cab");
        System.out.println(list);

        //进行排序
        Collections.sort(list);
        System.out.println("----------------------------");
        System.out.println(list);


        System.out.println("----------------------------");
        List<String> list1 = new ArrayList<>();
        Collections.addAll(list1,"翁","陈","张","王");
        System.out.println(list1);

        //输出汉字对应的UNICODE值
        System.out.println("翁"+Integer.toHexString('翁'));
        System.out.println("陈"+Integer.toHexString('陈'));
        System.out.println("张"+Integer.toHexString('张'));
        System.out.println("王"+Integer.toHexString('王'));

        Collections.sort(list1);
        System.out.println("----------------------------");
        System.out.println(list1);
    }
}
